package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.*;

import modelo.ProductoDTO;
import modelo.TipoDTO;

import controlador.Supermercado;

public class vNuevoProducto extends JFrame {

	private static final long serialVersionUID = 1L;
	private Supermercado supermercado;

	private JLabel lblID;
	private JTextField txtID;
	private JLabel lblDescripcion;
	private JTextField txtDescripcion;
	private JLabel lblTipoProducto;
	private JComboBox cmbTipoProducto;
	private JLabel lblPrecioUnitario;
	private JTextField txtPrecioUnitario;
	private JLabel lblStock;
	private JTextField txtStock;
	private JButton btnAceptar;
	private JButton btnCancelar;
	private JPanel panel;

	public vNuevoProducto(Supermercado superm) {
		super();
		supermercado = superm;
		cargarVentana();
	}

	private void cargarVentana() {

		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		setSize(600, 400);
		panel = new JPanel();
		panel.setLayout(null);// No usa ningun gestor de Layout
		panel.setBounds(getBounds());// Toma los limites del JFrame
		setContentPane(panel);
		Vector<String> listaTipos = crearListaTipo();
		lblTipoProducto = new JLabel("Tipo Producto");
		lblTipoProducto.setBounds(20, 140, 100, 25);
		panel.add(lblTipoProducto);
		cmbTipoProducto = new JComboBox(listaTipos);
		cmbTipoProducto.setBounds(150, 140, 180, 25);
		panel.add(cmbTipoProducto);
		lblID = new JLabel("Cod Producto");
		lblID.setBounds(20, 20, 100, 25);
		panel.add(lblID);
		txtID = new JTextField();
		txtID.setBounds(150, 20, 100, 25);
		txtID.setEnabled(false);
		panel.add(txtID);

		lblDescripcion = new JLabel("Descripcion");
		lblDescripcion.setBounds(20, 50, 100, 25);
		panel.add(lblDescripcion);
		txtDescripcion = new JTextField();
		txtDescripcion.setBounds(150, 50, 100, 25);
		panel.add(txtDescripcion);
		lblPrecioUnitario = new JLabel("Precio Unitario");
		lblPrecioUnitario.setBounds(20, 80, 100, 25);
		panel.add(lblPrecioUnitario);
		txtPrecioUnitario = new JTextField();
		txtPrecioUnitario.setBounds(150, 80, 100, 25);
		panel.add(txtPrecioUnitario);
		lblStock = new JLabel("Stock");
		lblStock.setBounds(20, 110, 100, 25);
		panel.add(lblStock);
		txtStock = new JTextField();
		txtStock.setBounds(150, 110, 100, 25);
		panel.add(txtStock);

		btnAceptar = new JButton("Aceptar");
		btnAceptar.setBounds(150, 350, 90, 25);
		panel.add(btnAceptar);
		btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(250, 350, 90, 25);
		panel.add(btnCancelar);

		btnAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				
				if (!txtDescripcion.getText().isEmpty()
						&& !txtPrecioUnitario.getText().isEmpty()
						&& !txtStock.getText().isEmpty()) {
					ProductoDTO pDTO;
					pDTO=supermercado.crearProducto(txtDescripcion.getText(), Float
							.parseFloat(txtPrecioUnitario.getText()), Integer
							.parseInt(txtStock.getText()), supermercado
							.buscarTipo(cmbTipoProducto.getSelectedItem()
									.toString()));
					txtID.setText(String.valueOf(pDTO.getCodProducto()));
					JOptionPane.showMessageDialog(null,
							"El Producto "+pDTO.getDescripcion()+" se ha agregado correctamente",
							"Exito", JOptionPane.INFORMATION_MESSAGE);
				}
			}
				
		});
		btnCancelar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				setVisible(false);
			}
		});

	}

	private Vector<String> crearListaTipo() {
		Vector<String> vec = new Vector<String>();
		Vector<TipoDTO> tDTO = supermercado.getTiposDTO();
		for (int i = 0; i < tDTO.size(); i++) {
			vec.add(tDTO.elementAt(i).getDescripcion());
		}
		return vec;
	}

}
